HSQLDB সহ যেকোনো রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেমে COMMIT, ROLLBACK, এবং SAVEPOINT হল গুরুত্বপূর্ণ কমান্ড, যা ট্রানজেকশন ম্যানেজমেন্টে ডেটার একতা এবং নিরাপত্তা নিশ্চিত করে। এই কমান্ডগুলো ডেটাবেসের ACID Properties (Atomicity, Consistency, Isolation, Durability) বজায় রাখার জন্য ব্যবহৃত হয়।
COMMIT
COMMIT একটি ট্রানজেকশন সম্পূর্ণ করার জন্য ব্যবহৃত হয়। এর অর্থ হল, ডেটাবেসে ট্রানজেকশনের পরিবর্তনগুলো স্থায়ীভাবে সংরক্ষণ করা।
বৈশিষ্ট্য
- সমস্ত পরিবর্তন স্থায়ী হয়।
- পরবর্তী সময়ে এই পরিবর্তনগুলো ROLLBACK করা সম্ভব নয়।
- ডেটাবেসের বর্তমান অবস্থা আপডেট হয়।
উদাহরণ
একটি নতুন কর্মচারী যোগ করা:
BEGIN TRANSACTION;
INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (4, 'David', 104);
COMMIT;
ফলাফল
employeesটেবিলে নতুন রেকর্ড যোগ হবে।- ডেটা স্থায়ীভাবে সংরক্ষিত হবে।
ROLLBACK
ROLLBACK একটি ট্রানজেকশনের পরিবর্তনগুলো বাতিল করতে ব্যবহৃত হয়। এটি ডেটাবেসের বর্তমান অবস্থা পূর্ববর্তী অবস্থা (যখন ট্রানজেকশন শুরু হয়েছিল) তে পুনরুদ্ধার করে।
বৈশিষ্ট্য
- ট্রানজেকশন চলাকালীন করা পরিবর্তনগুলো বাতিল হয়।
- ডেটাবেসের আগের অবস্থা ফিরে আসে।
- স্থায়ী পরিবর্তনের জন্য ব্যবহৃত নয়।
উদাহরণ
একটি রেকর্ড যোগ করার পর ভুল বুঝতে পারা:
BEGIN TRANSACTION;
INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (5, 'Eva', 105);
ROLLBACK;
ফলাফল
employeesটেবিলে কোনো নতুন রেকর্ড যোগ হবে না।- ডেটাবেস পূর্ববর্তী অবস্থায় ফিরে যাবে।
SAVEPOINT
SAVEPOINT ট্রানজেকশনের ভিতরে একটি নির্দিষ্ট পয়েন্ট চিহ্নিত করতে ব্যবহৃত হয়। পরবর্তী সময়ে সেই পয়েন্টে ফিরে যাওয়ার জন্য ROLLBACK TO SAVEPOINT ব্যবহার করা হয়।
বৈশিষ্ট্য
- বড় ট্রানজেকশনকে ছোট ছোট অংশে ভাগ করে পরিচালনা করা সহজ হয়।
- নির্দিষ্ট অংশে ফিরে গিয়ে পুনরায় কাজ করার সুযোগ দেয়।
উদাহরণ
একাধিক পরিবর্তন পরিচালনার সময় SAVEPOINT ব্যবহার:
BEGIN TRANSACTION;
INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (6, 'Fiona', 106);
SAVEPOINT savepoint1;
UPDATE employees
SET employee_name = 'Fiona Smith'
WHERE employee_id = 6;
ROLLBACK TO SAVEPOINT savepoint1;
COMMIT;
ফলাফল
employeesটেবিলেFionaনামে একটি নতুন রেকর্ড যোগ হবে।Fiona Smithআপডেট বাতিল হবে এবংFionaনামটি অক্ষুণ্ন থাকবে।- চূড়ান্ত ডেটা স্থায়ীভাবে সংরক্ষিত হবে।
COMMIT, ROLLBACK এবং SAVEPOINT এর তুলনা
| বৈশিষ্ট্য | COMMIT | ROLLBACK | SAVEPOINT |
|---|---|---|---|
| কাজের ধরন | পরিবর্তন স্থায়ী করে | পরিবর্তন বাতিল করে | নির্দিষ্ট পয়েন্টে ফিরে যাওয়া |
| স্থায়ী প্রভাব | পরিবর্তন সংরক্ষণ করে | পূর্ববর্তী অবস্থায় ফিরে যায় | নির্দিষ্ট অংশে বাতিল সম্ভব |
| ব্যবহারক্ষেত্র | ট্রানজেকশন সম্পূর্ণ করতে | ট্রানজেকশন বাতিল করতে | বড় ট্রানজেকশন নিয়ন্ত্রণে |
উদাহরণ: COMMIT, ROLLBACK এবং SAVEPOINT একত্রে ব্যবহার
ধরা যাক, একটি বড় ট্রানজেকশন চালানো হচ্ছে:
BEGIN TRANSACTION;
INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (7, 'George', 107);
SAVEPOINT savepoint1;
INSERT INTO employees (employee_id, employee_name, dept_id)
VALUES (8, 'Hannah', 108);
ROLLBACK TO SAVEPOINT savepoint1;
COMMIT;
ফলাফল
Georgeরেকর্ড যোগ হবে।Hannahএর রেকর্ড বাতিল হবে।Georgeএর পরিবর্তন ডেটাবেসে স্থায়ী হবে।
সারাংশ
COMMIT, ROLLBACK, এবং SAVEPOINT HSQLDB-তে ট্রানজেকশন ম্যানেজমেন্টের মূলভিত্তি। এগুলো ডেটার নির্ভুলতা এবং নিরাপত্তা নিশ্চিত করে। COMMIT ব্যবহার করে ডেটা স্থায়ী করা হয়, ROLLBACK ভুল সংশোধনে সহায়তা করে, এবং SAVEPOINT বড় ট্রানজেকশনে নমনীয়তা প্রদান করে।
Read more